package cup.common.enums;

import com.baomidou.mybatisplus.core.toolkit.StringUtils;

import java.util.Arrays;
import java.util.List;

/**
 * 上传文件类型限制枚举
 *
 * @author : ruoyu
 * @date : 2023/10/30
 */
public enum FileUploadTypeEnum {

	/**
	 * 积水点管理 文件大小 10M
	 */
	POND_ADD("1", Arrays.asList(".jpg", ".png", ".jpeg", ".bmp", ".gif"), 1, 10L * 1024 * 1024),

	/**
	 * 比较通用的文件限制 接收图片/excel/word/pdf 大小50m
	 */
	IMAGE_AND_DOC("2"
		, Arrays.asList(".jpg", ".png", ".jpeg", ".bmp", ".gif", ".doc", ".xlsx", ".pptx", ".pdf", ".docx", ".xls",".apk")
		, 5, 50L * 1024 * 1024),

	/**
	 * 紧急情况使用 直接忽略
	 */
	ALL("-999", null, null, null);

	/**
	 * 文件类型code  前后端对应
	 */
	private String code;

	/**
	 * 接收的文件类型
	 */
	private List<String> fileType;

	/**
	 * 接收的文件数量
	 */
	private Integer fileNums;

	/**
	 * 接收的文件大小
	 */
	private Long fileSize;

	FileUploadTypeEnum(String code, List<String> fileType, Integer fileNums, Long fileSize) {
		this.code = code;
		this.fileType = fileType;
		this.fileNums = fileNums;
		this.fileSize = fileSize;
	}

	public static FileUploadTypeEnum findByCode(String code) {
		if (StringUtils.isBlank(code)) {
			return null;
		}
		for (FileUploadTypeEnum typeEnum : values()) {
			if (typeEnum.getCode().equals(code)) {
				return typeEnum;
			}
		}
		return null;
	}

	public String getCode() {
		return code;
	}

	public List<String> getFileType() {
		return fileType;
	}

	public Integer getFileNums() {
		return fileNums;
	}

	public Long getFileSize() {
		return fileSize;
	}
}
